package com.xlh.dokka.api;

import com.xlh.dokka.api.dto.DokkaClusterJoinDTO;

import java.util.List;

/**
 * 容器“魔法” Service
 *
 * @author cheer
 */
public interface DokkaMagicService {

    /**
     * 调整容器分辨率
     *
     * @param dokkaIds 容器id集合
     * @param length   分辨率长度
     * @param width    分辨率宽度
     * @return 至少成功一个返回true，全部失败返回false
     */
    List<Long> adjustResolution(List<Long> dokkaIds, Double length, Double width);

    /**
     * 查询Ssh对外暴露地址
     *
     * @param dokkaId 容器id
     * @return ssh地址
     */
    String getSshExport(Long dokkaId);

    /**
     * 复制内容到容器
     *
     * @param dokkaId 容器id
     * @param content 复制内容
     * @return 复制是否成功
     */
    Boolean clipboard(Long dokkaId, String content);

    /**
     * 容器组成集群
     *
     * @param dokkaClusterJoinDTOS 容器主机参数
     */
    void joinCluster(List<DokkaClusterJoinDTO> dokkaClusterJoinDTOS);

    /**
     * 查询指定容器端口的对外地址
     *
     * @param dokkaId     容器id
     * @param exposedPort 容器内端口
     * @return 容器内端口对外地址
     */
    String getExposedPort(Long dokkaId, String exposedPort);

    String judge(Long dokkaId, String script);
}
